package com.gl.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.gl.common.vo.SysProductVo;
import com.gl.common.vo.ProductVo;
import com.gl.pojo.Product;
/**
 * @author FengLong
 *	商品数据层dao 
 */
@Mapper
public interface ProductDao {
	/**
	 * 	基于id删除商品
	 * @param id
	 * @return
	 */
	int deleteProductByIds(@Param("ids")Integer... ids);
	/**
	 * 	后台基于名称查询分页商品信息
	 * @param name 商品名称
	 * @return
	 */
	List<Product> findSysPageProducts(
			@Param("name")String name,
			@Param("startIndex") Integer startIndex,
			@Param("pageSize") Integer pageSize);
	/**
	 * 	前台:
	 * 	基于商品名称模糊查询商品分页显示信息
	 * @param name
	 * @param pageCurrent
	 * @return
	 */
	List<ProductVo> findPageProducts(
			@Param("name")String name, 
			@Param("startIndex") Integer startIndex,
			@Param("pageSize") Integer pageSize);
	/**
	 * 	前台:
	 * 	基于商品id查询具体商品详情信息
	 * @param id
	 * @return
	 */
	@Select("select * from gl_product where id=#{id}")
	Product findProductById(Integer id);
	/**
	 * 	后台:修改
	 * 	基于商品id查询商品信息,以便修改使用
	 * @param id
	 * @return
	 */
	SysProductVo findById(Integer id);
	/**
	 * 	基于id修改商品数据,创建人,新增时间和创建时间不用修改
	 * @param entity
	 * @return
	 */
	int updateProductById(Product entity);
	/**
	 * 	后台:
	 * 	新增产品信息
	 * @param entity
	 * @return
	 */
	int insertProduct(Product entity);
	/**
	 * 	基于名称查询商品总记录数
	 * @param name
	 * @return
	 */
	int getRowCount(String name);
}
